这段代码是Haru Free PDF Library中关于PDF文档信息（Info）的源文件 `hpdf_info.c` 的头文件部分。它定义了操作PDF文档信息字典的函数原型。以下是对代码的详细解释：

1. **版权声明**：注释块提供了Haru PDF库的版权信息。

2. **宏定义**：`#ifndef _HPDF_INFO_H` 和 `#define _HPDF_INFO_H` 用于防止头文件被多次包含。

3. **包含其他头文件**：`#include "hpdf_objects.h"` 包含了处理PDF对象所需的头文件。

4. **C++兼容性**：条件编译指令，确保当使用C++编译器时，这些函数以C的方式进行链接。

5. **文档信息设置函数原型**：
   - `HPDF_Info_SetInfoAttr`：设置文档信息字典的属性。接受信息字典、信息类型、值和编码器作为参数。

6. **文档信息获取函数原型**：
   - `HPDF_Info_GetInfoAttr`：获取文档信息字典的属性值。接受信息字典和信息类型作为参数。

7. **文档信息日期设置函数原型**：
   - `HPDF_Info_SetInfoDateAttr`：设置文档信息字典的日期属性。接受信息字典、信息类型和日期值作为参数。

8. **结束C++兼容性条件编译**：`#ifdef __cplusplus` 和 `#endif /* __cplusplus */` 结束C++兼容性代码块。

9. **结束宏定义**：`#endif /* _HPDF_INFO_H */` 结束头文件的宏定义。

这个头文件提供了设置和获取PDF文档信息的功能，如作者、标题、主题、创建日期等元数据。通过这些函数，开发者可以在创建PDF文档时添加或修改文档信息，这对于文档的识别和分类非常重要。/*
 * << Haru Free PDF Library >> -- hpdf_info.c
 *
 * URL: http://libharu.org
 *
 * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
 * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
 *
 * Permission to use, copy, modify, distribute and sell this software
 * and its documentation for any purpose is hereby granted without fee,
 * provided that the above copyright notice appear in all copies and
 * that both that copyright notice and this permission notice appear
 * in supporting documentation.
 * It is provided "as is" without express or implied warranty.
 *
 */


#ifndef _HPDF_INFO_H
#define _HPDF_INFO_H

#include "hpdf_objects.h"

#ifdef __cplusplus
extern "C" {
#endif


HPDF_STATUS
HPDF_Info_SetInfoAttr (HPDF_Dict        info,
                       HPDF_InfoType    type,
                       const char  *value,
                       HPDF_Encoder     encoder);


const char*
HPDF_Info_GetInfoAttr (HPDF_Dict      info,
                       HPDF_InfoType  type);


HPDF_STATUS
HPDF_Info_SetInfoDateAttr (HPDF_Dict      info,
                           HPDF_InfoType  type,
                           HPDF_Date      value);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _HPDF_INFO_H */

